MQTT 全稱 Message Queuing Telemetry Transport ,是一種輕量級的通訊協議,特色在於耗能低、佔用的頻寬小、不需消耗很多資源,且程式碼簡單,封包精簡,因為上述的特性及各種優勢,經常被應用於需要低耗能的物聯網上。
MQTT是採用發佈(Publish)和訂閱(Subscribe)模式,發佈者(Publisher)會發送一個主題到伺服器(MQTT Broker),訂閱者(Subscriber)可以選擇要訂閱什麼主題,並由伺服器發送主題給訂閱者。
在終端機中輸入以下指令
pip install paho-mqtt
可利用下列指令確認是否有安裝成功
pip list | grep paho-mqtt
以下是可供選擇的公開 MQTT Borker 伺服器
broker.emqx.io:1883
broker.hivemq.com:1883
test.mosquitto.org:1883
mqtt.eclipse.org:1883
#導入paho-mqtt套件
import paho.mqtt.client as mqtt
#定義連線到MQTT Broker伺服器的函式
def connect_MQTT_broker(broker_host, port):
#定義回呼函式(Callback function),當客戶端在連線後會自動呼叫這個函式
def on_connect(client, userdata, flags, rc):
if (rc == 0): #rc是連線結果的代碼,0表示連線成功
print("連線成功")
else:
print(f'連線失敗, 錯誤代碼={rc}')
client = mqtt.Client() #建立MQTT客戶端的實例
#將回呼函數指定到client這個實例的on_connect的屬性上,使客戶端連線時會自動呼叫該函數
client.on_connect = on_connect
#連線到Broker伺服器 .connect(host, port)
client.connect(broker_host, port)
#保持伺服器連線
client.loop_start()
#返回客戶端實例
return client
#將返回的客戶端實例指定到iron_client
iron_client = connect_MQTT_broker("broker.emqx.io", 1883)
連線成功
若連線成功則會輸出"連線成功",歡迎各位讀者嘗試實作看看喔!
下一篇將教大家實作發佈主題!
圖片來源:https://swf.com.tw/?p=1002